home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / mint / duftp / ftp.h < prev    next >
C/C++ Source or Header  |  1995-06-12  |  3KB  |  96 lines

  1. /*
  2.     DUFTP
  3. */
  4.  
  5. // FTP (HEADER)
  6.  
  7. #ifndef _FTP_H_
  8. #define _FTP_H_
  9.  
  10. #include <DULIB.H>
  11. #include <UNISTD.H>
  12. #include <STDIO.H>
  13. #include <SIGNAL.H>
  14. #include <NETDB.H>
  15. #include <PWD.H>
  16. #include <TYPES.H>
  17. #include <NETINET\IN.H>
  18. #include <SYS\SOCKET.H>
  19.  
  20. #define HASHBYTES 1024
  21.  
  22. typedef struct {
  23.     char    *s_name;            // official service name
  24.     char    **s_aliases;        // alias list
  25.     int    s_port;                    // port #
  26.     char    *s_proto;            // protocol to use
  27. } DU_servent;
  28.  
  29. typedef struct {
  30.     char    *h_name;            // official name of host
  31.     char    **h_aliases;        // alias list
  32.     int    h_addrtype;                // host address type
  33.     int    h_length;                // length of address
  34.     char    **h_addr_list;        // list of addresses from name server
  35. #define    h_addr    h_addr_list[0]    // address, for backward compatiblity
  36. } DU_hostent;
  37.  
  38. // Socket address, internet style.
  39. typedef struct sockaddr_internet {
  40.     short        sin_family;
  41.     unsigned short    sin_port;
  42.     struct in_addr    sin_addr;
  43.     char        sin_zero[8];
  44. } DU_sockaddr_in;
  45.  
  46. extern DU_servent *sp;            // service spec for tcp/ftp
  47. extern char homedir[FMSIZE];    // home directory (initial)
  48.  
  49. extern FILE    *cin;
  50. extern FILE *cout;
  51. extern FILE    *dataconn();
  52. extern int data;
  53.  
  54. extern int connected;            // are we connected to a server ?
  55. extern char *hostname;            // name of the host we are connected to
  56. extern int type;
  57. extern int form;
  58. extern int mode;
  59. extern int stru;
  60. extern int bytesize;
  61. extern int cpend;
  62. extern int proxy;
  63. extern int crflag;
  64. extern struct sockaddr_in hisctladdr;
  65. extern struct sockaddr_in data_addr;
  66. extern int data;
  67. extern int abrtflag;
  68. extern int ptflag;
  69. extern int allbinary;
  70. extern struct sockaddr_in myctladdr;
  71. extern off_t restart_point;
  72. extern char reply_string[BUFSIZ];            // last line of previous reply
  73. extern char pasv[64];                        // passive port for proxy data connection
  74.  
  75. // Routines that can be called by other modules fairly painlessly
  76. extern void initialise_ftp(void);                    // Initialises all the stuff to do with the FTP routines
  77. extern void connect_to_server(char *server_name);    // Open an FTP link to a named server (high level view)
  78. extern void remote_ls(char *local, char *remote);    // Get a directory listing from remote server into local file.
  79. extern void remote_cd(char *remote_directory);        // Change the remote directory
  80. extern void remote_get(char *local, char *remote);    // Get a file from the remote server
  81. char *remote_pwd(void);                                // Get the current remote directory
  82. extern void disconnect(void);                        // Terminate the current session
  83.  
  84. // Internal routines, don't call these unless you understand them
  85. extern void lostpeer(int a);                        // Signal handler for lost connections
  86. extern short send_command(char *command_to_send);    // Send a command to remote server, and get reply
  87. extern int getreply(int expecteof);                    // get a reply from the remote server
  88. extern char *hookup(char *host, int port);            // Actually do the connect to the remote FTP server
  89. extern void recvrequest(char *cmd, char *local, char *remote, char *mode, short printnames);
  90. extern char *gunique(char *local);
  91. extern short initconn(void);
  92. extern FILE *dataconn(char *mode);
  93. void report_bytes_transferred(char *direction, long bytes);
  94.  
  95. #endif
  96.